The ability to optimize systems which can be modeled by general non-linear functions of several variables within a constrained region is useful in a variety of fields. For example, in the field of computer circuit design, a particular circuit may be modeled through a circuit analysis program, such as SPICE or ASTAP, to determine its performance in response to defined inputs. Depending on the design requirements, the performance of the circuit may be measured with respect to different objectives, such as the propagation delay, power consumption, layout size, etc., or various combinations thereof. If it is a design goal to optimize the circuit with respect to a certain objective, for example, propagation delay, then the designer will make appropriate changes to the circuit parameters, such as increasing the transistor size in a relevant critical path, to achieve the goal. With each design change, new simulations are run to determine how much improvement was obtained, and to ensure that other circuit objectives are still within design constraints, for example, the increase in transistor size does not cause the circuit to draw an excessive amount of power.
To avoid the inefficiencies of trial and error optimization, techniques have been developed to more efficiently maximize or minimize desired parameters in a given system. Typical optimization techniques include the well known "simplex method," widely used throughout the discipline of operations research, and the modified box complex method. These techniques are described in detail in: M. J. Box, "A New Method of Constrained Optimization and a Comparison With Other Methods," Computer Journal, Vol. 8, pp. 42-52, (1965), and Press et al., "Numerical Recipes in C," pp. 305-309 (Cambridge University Press 1988), both incorporated herein by reference.
However, current algorithms tend to involve complex mathematical equations which, in turn, require significant amounts of computer time to run. This makes accurate determination of optimal parameters time consuming, expensive and, often, impractical in many instances. Moreover, this problem is compounded when the optimization method is "fooled" by a local maxima or minima and repeated optimization runs must be performed to identify actual maximum or minimum values. Further, current algorithms are also sensitive to normal small errors caused by inexact measurement, for example, round off error, low accuracy simulation, etc., of the system.
Accordingly, it is an object of the present invention to overcome the above described shortcomings, and to provide further improvements and advantages which will become apparent in view of the following disclosure.